package com.cocolove2.library_cocodialog.animations;

import android.animation.AnimatorSet;
import android.view.View;

/**
 * dialog动画效果基本类(属性动画)
 */
public abstract class BaseAnimatorEffects {

    protected AnimatorSet mAnimatorSet;
    protected int mDuration = 500;

    //    1.static{}这个程序运行的时候只会执行一次，而且是优先执行。
//            2、对于{}程序每次运行的时候都会执行一次，落后于static{}，但优先于构造方法。
//            3、A()构造方法最后执行，每次创建对象(new)的时候就会执行一次。
    {
        mAnimatorSet = new AnimatorSet();
    }


    protected abstract void setupAnimator(View view);

    public void start(View view) {
        reset(view);
        if (mDuration > 0)
            mAnimatorSet.setDuration(mDuration);
        setupAnimator(view);
        mAnimatorSet.start();
    }


    protected void reset(View view) {
        view.setAlpha(1);
        view.setScaleX(1);
        view.setScaleY(1);
        view.setRotation(0);
        view.setRotationY(0);
        view.setRotationX(0);
    }


    public AnimatorSet getAnimatorSet() {
        return mAnimatorSet;
    }
}
